﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Data.Entity;
using ProjectThuCung.Models;

namespace ProjectThuCung
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            Database.SetInitializer(new ThuCungDBInitializer());

            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();
        }
    }

    public class ThuCungDBInitializer : DropCreateDatabaseIfModelChanges<ProjectThuCung.Models.ThuCungDB>
    {
        protected override void Seed(Models.ThuCungDB context)
        {
            base.Seed(context);

            var loaiSanPham = new List<LoaiSanPham>
            {
                new LoaiSanPham { LoaiSanPhamID = 1, TenLoaiSanPham = "Hamter", ThuocTinh = "Loại chuột nhỏ", SubLoaiSanPham = SubLoaiSP.ThuCung},
                new LoaiSanPham { LoaiSanPhamID = 2, TenLoaiSanPham = "Cún", ThuocTinh = "Bạn thân thiết của chúng ta", SubLoaiSanPham = SubLoaiSP.ThuCung},
                new LoaiSanPham { LoaiSanPhamID = 3, TenLoaiSanPham = "Sóc nhỏ", ThuocTinh = "Loại sóc nhỏ vui tính", SubLoaiSanPham = SubLoaiSP.ThuCung },
                new LoaiSanPham { LoaiSanPhamID = 4, TenLoaiSanPham = "Mèo", ThuocTinh = "Đầy đủ màu sắc và kích thước", SubLoaiSanPham = SubLoaiSP.ThuCung },
                new LoaiSanPham { LoaiSanPhamID = 5, TenLoaiSanPham = "Chuồng cho hamter", ThuocTinh = "Có khu vực vui chơi, kích thước nhẹ", SubLoaiSanPham = SubLoaiSP.Chuong },
                new LoaiSanPham { LoaiSanPhamID = 6, TenLoaiSanPham = "Chuồng cho cún", ThuocTinh = "Có khu vực vui chơi, đẹp mắt", SubLoaiSanPham = SubLoaiSP.Chuong },
                new LoaiSanPham { LoaiSanPhamID = 7, TenLoaiSanPham = "Chuồng cho sóc", ThuocTinh = "Có khu vực vui chơi, đẹp mắt", SubLoaiSanPham = SubLoaiSP.Chuong },
                new LoaiSanPham { LoaiSanPhamID = 8, TenLoaiSanPham = "Thuốc cho cún", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.Thuoc },
                new LoaiSanPham { LoaiSanPhamID = 9, TenLoaiSanPham = "Thuốc cho mèo", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.Thuoc },
                new LoaiSanPham { LoaiSanPhamID = 10, TenLoaiSanPham = "Thuốc cho hamter", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.Thuoc },
                new LoaiSanPham { LoaiSanPhamID = 11, TenLoaiSanPham = "Thuốc diệt trùng", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.Thuoc },
                new LoaiSanPham { LoaiSanPhamID = 12, TenLoaiSanPham = "Thức ăn cho cún", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.ThucAn },
                new LoaiSanPham { LoaiSanPhamID = 13, TenLoaiSanPham = "Thức ăn cho mèo", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.ThucAn },
                new LoaiSanPham { LoaiSanPhamID = 14, TenLoaiSanPham = "Thức ăn cho hamter", ThuocTinh = "chất lượng đạt chuần quốc tế", SubLoaiSanPham = SubLoaiSP.ThucAn },

            };
            loaiSanPham.ForEach(s => context.LoaiSanPhams.Add(s));
            context.SaveChanges();

            var xuatXu = new List<XuatXu>
            {
                new XuatXu { XuatXuID = 1, TenXuatXu = "Thái Lan", DiaChi = "Một nơi nào đó ở Thái Lan"},
                new XuatXu { XuatXuID = 2, TenXuatXu = "Trung Quốc", DiaChi = "Một nơi nào đó ở Trung Quốc"},
                new XuatXu { XuatXuID = 3, TenXuatXu = "Việt Nam", DiaChi = "Một nơi nào đó ở Việt Nam"},
                new XuatXu { XuatXuID = 4, TenXuatXu = "Châu Âu", DiaChi = "Một nơi nào đó ở Châu Âu"},
                new XuatXu { XuatXuID = 5, TenXuatXu = "Châu Mỹ", DiaChi = "Một nơi nào đó ở Châu Mỹ"},
            };
            xuatXu.ForEach(s => context.XuatXus.Add(s));
            context.SaveChanges();

            var thongTinThem = new List<ThongTinThem>
            {
                new ThongTinThem{ ThongTinThemID = 1, Giong = "Vật Phẩm", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 0, TrongLuong = 0},
                new ThongTinThem{ ThongTinThemID = 2, Giong = "Chuột hamter lớn", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 10, TrongLuong = 0.2f},
                new ThongTinThem{ ThongTinThemID = 3, Giong = "Chuột hamter lớn", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 10, TrongLuong = 0.2f},
                new ThongTinThem{ ThongTinThemID = 4, Giong = "Chuột hamter trung bình", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 4, TrongLuong = 0.1f},
                new ThongTinThem{ ThongTinThemID = 5, Giong = "Chuột hamter trung bình", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 4, TrongLuong = 0.1f},
                new ThongTinThem{ ThongTinThemID = 6, Giong = "Chuột hamter nhỏ", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 1, TrongLuong = 0.05f},
                new ThongTinThem{ ThongTinThemID = 7, Giong = "Chuột hamter nhỏ", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 1, TrongLuong = 0.05f},
                new ThongTinThem{ ThongTinThemID = 8, Giong = "Cún con", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 2.0f},
                new ThongTinThem{ ThongTinThemID = 9, Giong = "Cún con", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 2.0f},
                new ThongTinThem{ ThongTinThemID = 10, Giong = "Mèo con", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
                new ThongTinThem{ ThongTinThemID = 11, Giong = "Mèo con", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
                new ThongTinThem{ ThongTinThemID = 12, Giong = "Sóc con", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
                new ThongTinThem{ ThongTinThemID = 13, Giong = "Sóc con", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
                new ThongTinThem{ ThongTinThemID = 14, Giong = "Mèo con", GioiTinh = true, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
                new ThongTinThem{ ThongTinThemID = 15, Giong = "Mèo con", GioiTinh = false, Mau = "nhiều màu", ThangTuoi = 2, TrongLuong = 0.5f},
            };

            thongTinThem.ForEach(s => context.ThongTinThems.Add(s));
            context.SaveChanges();

            var sanPham = new List<SanPham> 
            {
                new SanPham{ SanPhamID = 1, LoaiSanPhamID = 1, XuatXuID = 1, ThongTinThemID = 2, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 1"},
                new SanPham{ SanPhamID = 2, LoaiSanPhamID = 1, XuatXuID = 2, ThongTinThemID = 3, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 2"},
                new SanPham{ SanPhamID = 3, LoaiSanPhamID = 1, XuatXuID = 3, ThongTinThemID = 4, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 3"},
                new SanPham{ SanPhamID = 4, LoaiSanPhamID = 1, XuatXuID = 4, ThongTinThemID = 5, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 4"},
                new SanPham{ SanPhamID = 5, LoaiSanPhamID = 1, XuatXuID = 5, ThongTinThemID = 6, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 5"},
                new SanPham{ SanPhamID = 6, LoaiSanPhamID = 1, XuatXuID = 1, ThongTinThemID = 7, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 6"},
                new SanPham{ SanPhamID = 7, LoaiSanPhamID = 1, XuatXuID = 2, ThongTinThemID = 2, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 7"},
                new SanPham{ SanPhamID = 8, LoaiSanPhamID = 1, XuatXuID = 3, ThongTinThemID = 3, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 8"},
                new SanPham{ SanPhamID = 9, LoaiSanPhamID = 1, XuatXuID = 4, ThongTinThemID = 4, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 9"},
                new SanPham{ SanPhamID = 10, LoaiSanPhamID = 1, XuatXuID = 5, ThongTinThemID = 5, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 10"},
                new SanPham{ SanPhamID = 11, LoaiSanPhamID = 1, XuatXuID = 1, ThongTinThemID = 6, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 11"},
                new SanPham{ SanPhamID = 12, LoaiSanPhamID = 1, XuatXuID = 2, ThongTinThemID = 7, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 12"},
                new SanPham{ SanPhamID = 13, LoaiSanPhamID = 1, XuatXuID = 3, ThongTinThemID = 2, Gia = 300, MoTa = "thú cưng ngoan", SoLuong = 2, TenSanPham = "Chuột hamter 13"},

                new SanPham{ SanPhamID = 14, LoaiSanPhamID = 10, XuatXuID = 1, ThongTinThemID = 1, Gia = 30, MoTa = "Thuốc tốt cho hamter", SoLuong = 22, TenSanPham = "thuốc cho hamter 1"},
                new SanPham{ SanPhamID = 15, LoaiSanPhamID = 10, XuatXuID = 2, ThongTinThemID = 1, Gia = 3000, MoTa = "Thuốc tốt cho hamter", SoLuong = 62, TenSanPham = "thuốc cho hamter 2"},
                new SanPham{ SanPhamID = 16, LoaiSanPhamID = 10, XuatXuID = 3, ThongTinThemID = 1, Gia = 30, MoTa = "Thuốc tốt cho hamter", SoLuong = 25, TenSanPham = "thuốc cho hamter 3"},
                new SanPham{ SanPhamID = 17, LoaiSanPhamID = 10, XuatXuID = 4, ThongTinThemID = 1, Gia = 3200, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 4"},
                new SanPham{ SanPhamID = 18, LoaiSanPhamID = 10, XuatXuID = 5, ThongTinThemID = 1, Gia = 3010, MoTa = "Thuốc tốt cho hamter", SoLuong = 42, TenSanPham = "thuốc cho hamter 5"},
                new SanPham{ SanPhamID = 19, LoaiSanPhamID = 10, XuatXuID = 1, ThongTinThemID = 1, Gia = 3001, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 6"},
                new SanPham{ SanPhamID = 20, LoaiSanPhamID = 10, XuatXuID = 2, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 7"},
                new SanPham{ SanPhamID = 21, LoaiSanPhamID = 10, XuatXuID = 3, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 8"},
                new SanPham{ SanPhamID = 22, LoaiSanPhamID = 10, XuatXuID = 4, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 9"},
                new SanPham{ SanPhamID = 23, LoaiSanPhamID = 10, XuatXuID = 5, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 10"},
                new SanPham{ SanPhamID = 24, LoaiSanPhamID = 10, XuatXuID = 1, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 11"},
                new SanPham{ SanPhamID = 25, LoaiSanPhamID = 10, XuatXuID = 2, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 12"},
                new SanPham{ SanPhamID = 26, LoaiSanPhamID = 10, XuatXuID = 3, ThongTinThemID = 1, Gia = 300, MoTa = "Thuốc tốt cho hamter", SoLuong = 2, TenSanPham = "thuốc cho hamter 13"},
            };

            sanPham.ForEach(s => context.SanPhams.Add(s));
            context.SaveChanges();

            var user = new List<UserProfile>
            {
                new UserProfile{ UserId = 1, UserName = "Lãng khách"},
                new UserProfile{ UserId = 2, UserName = "Son"},
            };

            user.ForEach(s => context.UserProfiles.Add(s));
            context.SaveChanges();

            var hoaDon = new List<HoaDon> 
            {
               new HoaDon{ HoaDonID = 1, DiaChi = "địa chỉ 1", Dagiao = true, DienThoai = "090808080", ThoiGianGiaoHang = DateTime.Now, TenNguoiMua = "A", TongTien = 152, UserId = 1},
                new HoaDon{ HoaDonID = 2, DiaChi = "địa chỉ 2", Dagiao = true, DienThoai = "090808081", ThoiGianGiaoHang = DateTime.Now, TenNguoiMua = "B", TongTien = 100, UserId = 1}
            };

            hoaDon.ForEach(s => context.HoaDons.Add(s));
            context.SaveChanges();


            var ctHoaDon = new List<CTHoaDon> 
            {
                new CTHoaDon{  CTHoaDonID = 1, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 2, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 3, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 4, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 5, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 6, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 7, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 8, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 9, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 10, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 11, GiaBan = 15, HoaDonID = 1, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 12, GiaBan = 17, HoaDonID = 1, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 13, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 14, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 15, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 16, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 17, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 18, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 19, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 20, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 21, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 22, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 23, GiaBan = 15, HoaDonID = 2, SanPhamID = 3, Soluong = 1},
                new CTHoaDon{  CTHoaDonID = 24, GiaBan = 17, HoaDonID = 2, SanPhamID = 2, Soluong = 1},
            };

            ctHoaDon.ForEach(s => context.CTHoaDons.Add(s));
            context.SaveChanges();

            var binhLuanSanPham = new List<BinhLuanSanPham>
            {
                new BinhLuanSanPham{ BinhLuanSanPhamID = 1, UserId = 1, NoiDung = "nội dung 1", TieuDe = "tiêu đề 1", SanPhamID = 2, ThoiGian = DateTime.Now, TenNguoiBinhLuan = context.UserProfiles.Find(1).UserName},
                new BinhLuanSanPham{ BinhLuanSanPhamID = 2, UserId = 2, NoiDung = "nội dung 1", TieuDe = "tiêu đề 1", SanPhamID = 2, ThoiGian = DateTime.Now, TenNguoiBinhLuan = context.UserProfiles.Find(2).UserName},
                new BinhLuanSanPham{ BinhLuanSanPhamID = 3, UserId = 2, NoiDung = "nội dung 1", TieuDe = "tiêu đề 1", SanPhamID = 2, ThoiGian = DateTime.Now, TenNguoiBinhLuan = context.UserProfiles.Find(2).UserName},
                new BinhLuanSanPham{ BinhLuanSanPhamID = 4, UserId = 2, NoiDung = "nội dung 1", TieuDe = "tiêu đề 1", SanPhamID = 2, ThoiGian = DateTime.Now, TenNguoiBinhLuan = context.UserProfiles.Find(2).UserName},
            };

            binhLuanSanPham.ForEach(s => context.BinhLuanSanPhams.Add(s));
            context.SaveChanges();

        }
    }
}